﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace QLKS
{
    public partial class fTraPhong : Form
    {
        public fTraPhong()
        {
            InitializeComponent();
            _timer.Tick += new EventHandler(timer_Tick);
            _timer.Interval = 1000;
            _timer.Enabled = true;
            _timer.Start();
        }

        Timer _timer = new Timer();//cập nhật trạng thái đăng nhập của người dùng
        private bool _ktdangnhap;//biến tạm kiểm tra trạng thái đăng nhập
        private List<string> tatcakh = new List<string>();

        /// <summary>
        /// Kiểm tra người dùng đăng nhập chưa, nếu đăng nhập rồi thì cho phép thao tác, nếu chưa thì không cho phép thao tác
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fTraPhong_Load(object sender, EventArgs e)
        {
            dataGridView1.DataSource = null;
            tbtenkh.Clear();
            tbcmnd.Clear();
            tbmaphieu.Clear();
            tbphongthue.Clear();
            tbngaythue.Clear();
            tbngaytra.Clear();
            tbsongay.Clear();
            tbdongia.Clear();
            tbdathanhtoan.Clear();
            tbthanhtien.Clear();
            if (MainForm.ktdangnhap == true) //người dùng đã đăng nhập thì cho phép thao tác
            {
                tbtenkh.Enabled = true;
                tbcmnd.Enabled = true;
                tbmaphieu.Enabled = true;
                tbphongthue.Enabled = true;
                tbngaythue.Enabled = true;
                tbngaytra.Enabled = true;
                tbsongay.Enabled = true;
                tbdongia.Enabled = true;
                tbdathanhtoan.Enabled = true;
                tbthanhtien.Enabled = true;
                dataGridView1.Enabled = true;
                button1.Enabled = true;
                btxacnhan.Enabled = true;
                label1.Enabled = true;
                label2.Enabled = true;
                label3.Enabled = true;
                label4.Enabled = true;
                label5.Enabled = true;
                label6.Enabled = true;
                label7.Enabled = true;
                label8.Enabled = true;
                label9.Enabled = true;
                label10.Enabled = true;
                label11.Enabled = true;
                _ktdangnhap = MainForm.ktdangnhap;
            }
            else
            {
                tbtenkh.Enabled = false;
                tbcmnd.Enabled = false;
                tbmaphieu.Enabled = false;
                tbphongthue.Enabled = false;
                tbngaythue.Enabled = false;
                tbngaytra.Enabled = false;
                tbsongay.Enabled = false;
                tbdongia.Enabled = false;
                tbdathanhtoan.Enabled = false;
                tbthanhtien.Enabled = false;
                dataGridView1.Enabled = false;
                button1.Enabled = false;
                btxacnhan.Enabled = false;
                label1.Enabled = false;
                label2.Enabled = false;
                label3.Enabled = false;
                label4.Enabled = false;
                label5.Enabled = false;
                label6.Enabled = false;
                label7.Enabled = false;
                label8.Enabled = false;
                label9.Enabled = false;
                label10.Enabled = false;
                label11.Enabled = false;
                _ktdangnhap = MainForm.ktdangnhap;
            }
        }

        /// <summary>
        /// Hiển thị tất cả thông tin thuê phòng của khách hàng trả phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            XuLyTraPhong xltp = new XuLyTraPhong();
            xltp.HienThi(tbtenkh.Text, tbcmnd.Text);
            DataSet ds = xltp.Ds;
            tatcakh = xltp.Tatcakh;
            dataGridView1.DataSource = ds.Tables[0];
            tbmaphieu.Text = xltp.str_maphieu;
            tbphongthue.Text = xltp.str_phongthue;
            tbngaythue.Text = xltp.str_ngaythue;
            tbngaytra.Text = xltp.str_ngaytra;
            tbsongay.Text = xltp.str_songay;
            tbdongia.Text = xltp.str_dongia;
            tbdathanhtoan.Text = xltp.str_dathanhtoan;
            tbthanhtien.Text = xltp.str_thanhtien;
        }

        /// <summary>
        /// Mở form In hóa đơn
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btinphieu_Click(object sender, EventArgs e)
        {
            fInHoaDon fihd = new fInHoaDon();
            fihd.Tatcakh = tatcakh;
            fihd.Phong = tbphongthue.Text;
            fihd.Dongia = tbdongia.Text;
            fihd.Thanhtien = tbthanhtien.Text;
            fihd.Ngaythue = tbngaythue.Text;
            fihd.Ngaytra = tbngaytra.Text;
            fihd.Songay = tbsongay.Text;
            fihd.ShowDialog();
        }

        /// <summary>
        /// Ghi nhận việc trả phòng của khách hàng vào CSDL
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btxacnhan_Click(object sender, EventArgs e)
        {
            XuLyTraPhong xltp = new XuLyTraPhong();
            xltp.str_maphieu = tbmaphieu.Text;
            xltp.str_phongthue = tbphongthue.Text;
            xltp.str_ngaytra = tbngaytra.Text;
            xltp.str_songay = tbsongay.Text;
            xltp.str_dongia = tbdongia.Text;
            xltp.str_thanhtien = tbthanhtien.Text;
            if (xltp.CapNhatHoaDon() == false)
            {
                MessageBox.Show("Lập hóa đơn thất bại", " Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                xltp.CapNhatBaoCaoDoanhThu();
                DialogResult result = MessageBox.Show("Lập hóa đơn thành công. Bạn có muốn in hóa đơn vừa lập không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    btinphieu.PerformClick();
                }
            }
            fTraPhong_Load(sender, e);
        }

        /// <summary>
        /// Đóng form Trả phòng – Lập hóa đơn
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bthuy_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        /// <summary>
        /// Cập nhật tình trạng đăng nhập của người dùng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer_Tick(object sender, EventArgs e)
        {
            if (MainForm.ktdangnhap != _ktdangnhap)
            {
                fTraPhong_Load(sender, e);
            }
        }
    }
}
